package opf5.entities.propuestas;

import opf5.entities.dominio.Propuesta;
import opf5.entities.dominio.Jugador;
import opf5.entities.repositorios.RepositorioPropuestas;
import opf5.entities.repositorios.RepositorioJugadores;
import opf5.utilidades.Fecha;

public class PropuestaConcreta implements Propuesta {
	private Jugador jugadorProponedor;
	private RepositorioPropuestas repositorioPropuestas;
	private String comentario;
	private Fecha fecha;
	private String nombreJugadorPropuesto;
	
	public PropuestaConcreta(String nombreJugadorPropuesto, Jugador unJugador) {
		jugadorProponedor = unJugador;
		this.nombreJugadorPropuesto = nombreJugadorPropuesto;
		actualizarFecha();
	}


	@Override
	public void rechazar(String motivo) {
		comentario = motivo;
		actualizarFecha();
	}

	private void actualizarFecha() {
		fecha = new Fecha();
	}

	@Override
	public void aprobar(Jugador nuevoJugador, RepositorioJugadores repositorioJugadores) {
		actualizarFecha();
		repositorioJugadores.agregarJugador(nuevoJugador);
	}

	@Override
	public String getComentario() {
		return comentario;
	}

	@Override
	public Fecha getFechaPropuesta() {
		return fecha;
	}
	
	@Override
	public Jugador getJugadorProponedor() {
		return jugadorProponedor;
	}

	@Override
	public String getNombreJugadorPropuesto() {
		return nombreJugadorPropuesto;
	}

	public void setJugadorProponedor(Jugador jugador) {
		this.jugadorProponedor = jugador;
	}

	public void setComentario(String comentario2) {
		this.comentario = comentario2;
	}

	public void setFecha(Fecha fecha2) {
		this.fecha = fecha2;
	}

	public void setNombreJugadorPropuesto(String nombre) {
		this.nombreJugadorPropuesto = nombre;
	}
}

